package com.wms.common;

import com.wms.entity.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
public class Result<T> {
    private int code;          // 状态码
    private String message;    // 消息
    private T data;           // 数据
    private Integer total;     // 总数

    // 构造函数
    public Result(int code, String message, T data, Integer total) {
        this.code = code;
        this.message = message;
        this.data = data;
        this.total = total;
    }

    // 成功的静态方法（有数据和总数）
    public static <T> Result<T> success(T data, Integer total) {
        return new Result<>(200, "成功", data, total);
    }

    // 成功的静态方法（有数据，特定于 User 列表）
    public static Result<List<User>> success(List<User> list, Integer total) {
        return new Result<>(200, "成功", list, total);
    }

    // 失败的静态方法
    public static <T> Result<T> error(int code, String message) {
        return new Result<>(code, message, null, 0);
    }
}
